package com.pig4cloud.pigx.knowledge.support.constant;

import lombok.Getter;
import lombok.RequiredArgsConstructor;

/**
 * 支持的模型名称
 *
 * @author lengleng
 * @date 2024/4/15
 * <p>
 */

@RequiredArgsConstructor
public enum ModelSupportEnums {

	ALIYUN_QWEN_MAX_LATEST("qwen-max-latest", "Aliyun", "json_object", "Qwen Max Latest"),

	ALIYUN_QWEN_PLUS("qwen-plus", "Aliyun", "json_object", "Qwen Plus"),

	ALIYUN_QWEN_VL_MAX("qwen-vl-max-1119", "Aliyun", "json_object", "Qwen Vl Max"),

	ALIYUN_QWEN_VL_OCR("qwen-vl-ocr", "Aliyun", "json_object", "Qwen Vl OCR"),

	ALIYUN_TEXT_EMBEDDING_V3("text-embedding-v3", "Aliyun", "json_object", "Text Embedding V3"),

	ALIYUN_FLUX_SCHNELL("flux-schnell", "Aliyun", "json_object", "Flux Schnell"),

	ALIYUN_PARAFORMER_V2("paraformer-realtime-v2", "Aliyun", "json_object", "Paraformer V2"),

	ALIYUN_COSYVOICE_V1("cosyvoice-v1", "Aliyun", "json_object", "Cosyvoice V1"),

	DEEPSEEK_CHAT("deepseek-chat", "DeepSeek", "json_object", "Deepseek Chat"),

	GLM_4_PLUS("glm-4-plus", "ChatGLM", "json_object", "Glm 4 Plus"),

	GLM_4_FLASH("glm-4-flash", "ChatGLM", "json_object", "Glm 4 flash"),

	GLM_4V_PLUS("glm-4v-plus", "ChatGLM", "json_schema", "Glm 4v Plus"),

	GLM_4V_FLASH("glm-4v-flash", "ChatGLM", "json_schema", "Glm 4v Flash"),

	GLM_COGVIEW_3_PLUS("cogview-3-plus", "ChatGLM", "json_schema", "Cogview 3 Plus"),

	GLM_EMBEDDING_3("embedding-3", "ChatGLM", "json_schema", "Embedding 3"),

	GPT_4O_MINI("gpt-4o-mini", "OpenAI", "json_schema", "Gpt 4o Mini"),

	GPT_4O("gpt-4o", "OpenAI", "json_schema", "Gpt 4o"),

	GPT_TEXT_EMBEDDING_3_SMALL("text-embedding-3-small", "OpenAI", "json_schema", "Text Embedding 3 Small"),

	GPT_TEXT_EMBEDDING_3_LARGE("text-embedding-3-large", "OpenAI", "json_schema", "Text Embedding 3 Large"),

	SILICONFLOW_FLUX_1_SCHNELL("black-forest-labs/FLUX.1-schnell", "Siliconflow", "json_object",
			"Black Forest Labs Flux 1 Schnell"),

	STABLE_DIFFUSION_3_5_large("stabilityai/stable-diffusion-3-5-large", "Siliconflow", "json_object",
			"stable diffusion 3.5-large"),

	SILICONFLOW_SENSE_VOICE_SMALL("FunAudioLLM/SenseVoiceSmall", "Siliconflow", "json_schema",
			"Fun Audio LLM Sense Voice Small"),

	SILICONFLOW_BAAI_RERANKER_V2_M3("BAAI/bge-reranker-v2-m3", "Siliconflow", "json_schema", "Baai Bge Reranker V2 M3"),

	SILICONFLOW_NETEASE_RERANKER_BASE_V1("netease-youdao/bce-reranker-base_v1", "Siliconflow", "json_schema",
			"Netease Youdao Bce Reranker Base V1"),

	OLLAMA_QWEN_2_5_14B("qwen2.5:14b", "Ollama", "json_schema", "Qwen 2.5 14b"),

	OLLAMA_QWEN_2_5_32B("qwen2.5:32b", "Ollama", "json_schema", "Qwen 2.5 32b"),

	OLLAMA_QWEN_2_5_72B("qwen2.5:72b", "Ollama", "json_schema", "Qwen 2.5 72b"),

	OLLAMA_MINICPM_LATEST("minicpm-v:latest", "Minicpm", "json_schema", "minicpm v Latest"),

	OLLAMA_BGE_M3_LATEST("minicpm-v:latest", "Ollama", "json_schema", "minicpm v Latest"),

	GEMINI2_EXP("gemini-exp-1206", "Gemini", "json_schema", "Gemini Latest"),

	GEMINI2_FLASH_EXP("gemini-2.0-flash-exp", "Gemini", "json_schema", "Gemini v Latest");

	/**
	 * 编码
	 */
	@Getter
	private final String code;

	/**
	 * 供应商
	 */
	@Getter
	private final String provider;

	/**
	 * JSON 格式
	 */
	@Getter
	private final String jsonFormat;

	/**
	 * 描述
	 */
	@Getter
	private final String desc;

}
